ostbuild: Do fetches before resolution
authorColin Walters <walters@verbum.org>
Mon, 16 Jan 2012 14:57:40 +0000 (09:57 -0500)
committerColin Walters <walters@verbum.org>
Mon, 16 Jan 2012 14:57:40 +0000 (09:57 -0500)
Otherwise we get the OLD revision in the manifest.

src/ostbuild/pyostbuild/builtin_resolve.py

index d680094aad598fec03e76c6406762785bbf4f6f4..516d144e8cbdb1567a7c523397a4d58ac5563445 100755 (executable)
@@ -102,14 +102,6 @@ class OstbuildResolve(builtins.Builtin):
         self.manifest = json.load(open(manifest_path))
 
         self.resolved_components = map(self._resolve_component_meta, self.manifest['components'])
-        for component in self.resolved_components:
-            (keytype, uri) = self._parse_src_key(component['src'])
-            mirrordir = self._ensure_vcs_mirror(component['name'],
-                                                keytype, uri,
-                                                component['branch'])
-            revision = buildutil.get_git_version_describe(mirrordir,
-                                                          component['branch'])
-            component['revision'] = revision
 
         if args.fetch:
             if len(args.components) == 0:
@@ -124,12 +116,22 @@ class OstbuildResolve(builtins.Builtin):
                         break
                 if not found:
                     fatal("Unknown component %r" % (component_name, ))
+                (keytype, uri) = self._parse_src_key(component['src'])
                 mirrordir = self._ensure_vcs_mirror(component['name'],
                                                     keytype, uri,
                                                     component['branch'])
                 log("Running git fetch for %s" % (component['name'], ))
                 run_sync(['git', 'fetch'], cwd=mirrordir, log_initiation=False)
 
+        for component in self.resolved_components:
+            (keytype, uri) = self._parse_src_key(component['src'])
+            mirrordir = self._ensure_vcs_mirror(component['name'],
+                                                keytype, uri,
+                                                component['branch'])
+            revision = buildutil.get_git_version_describe(mirrordir,
+                                                          component['branch'])
+            component['revision'] = revision
+
         self.manifest['components'] = self.resolved_components
 
         out_manifest = os.path.join(self.workdir, 'manifest.json')